3
תגובות
נתיב משתנה
פתח
soogo
,
יש לי קובץ בתיקייה הראשית עם include ל init.php
יש לי גם קובץ בתיקייה משנית עם include ל init.php
והבעייה זה שב init.php יש
אז בעצם כשאני משתמש ב init.php מתקייה משנית הוא לא עובד כי הנתיב משתנה
יש לי גם קובץ בתיקייה משנית עם include ל init.php
והבעייה זה שב init.php יש
function CallClases($Class)
{
require('Clases/' . $Class . '.php');
}
spl_autoload_register('CallClases');
{
require('Clases/' . $Class . '.php');
}
spl_autoload_register('CallClases');
אז בעצם כשאני משתמש ב init.php מתקייה משנית הוא לא עובד כי הנתיב משתנה
3 תשובות
במקום להתחיל להסתבך כל פעם כמה נקודות אתה צריך לרשום,תשתמש בנתיב מלא.
בדף של ההגדרות תיצור קבוע ששם מאוחסן הנתיב הראשי של הסקריפט ,בצורה הזאת -
define('ROOT','my/path/');
ואז כל פעם שאתה רוצה לגשת לקובץ \ תיקיה מסוימת תעשה זאת כך -
include ROOT.'folder/file.php';
באופן כללי splash נתן פתרון מעולה.
--
אני אישית פחות אוהב קבועים גלובלים ולכן אני מעדיף להישתמש בנתיבים יחסיים. היות שהיחס מקום בין הקובץ init לבין התיקיה classes קבוע ואינו תלוי בקובץ המופעל, אפשר להישתמש בו בתור הבסיס לנתיב, למשל בצורה הבאה:
spl_autoload_register(function(){
require(__DIR__.'/../Classes/' . $Class . '.php');
});
require(__DIR__.'/../Classes/' . $Class . '.php');
});
הקבוע __DIR__ תמיד מכיל את שם התיקיה שבה נמצא הקובץ שבתוכו הקבוע נמצא.
אם תשתמש בקבוע הזה בתוך הקובץ init הערך של __DIR__ יהיה core
אם תשתמש בקבוע הזה בתוך הקובץ menu הערך שלו היה ControlPanel